package cn.wolfcode.domain;

import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

@Getter
@Setter
@ToString
public class Business {
    public static final int TYPE_MAIN = 1; //总店
    public static final int TYPE_BRANCH = 0; //分店
    /** 主键*/
    private Long id;

    /** 门店名称*/
    private String name;

    /** 门店介绍*/
    private String intro;

    /** 经营范围*/
    private String scope;

    /** 门店电话*/
    private String tel;

    /** 门店地址*/
    private String address;

    /** 经营日期*/
    @DateTimeFormat(pattern = "yyyy-MM-dd") // 用于添加封装日期类型能够匹配
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8") // 用于异步请求,获取数据,能够展示日期类型
    private Date openDate;

    /** 营业执照图片*/
    private String licenseImg;

    /** 营业执照号码*/
    private String licenseNumber;

    /** 法人姓名*/
    private String legalName;

    /** 法人电话*/
    private String legalTel;

    /** 法人身份证*/
    private String legalIdcard;

    /** 门店性质(总店/分店)*/
    private int mainStore = TYPE_BRANCH;
    /** 门店性质(总店/分店)*/
    public String getStoreDisplay() {
        if (mainStore == TYPE_MAIN) {
            return "总店";
        } else if (mainStore==TYPE_BRANCH) {
            return "分店";
        }
        return "待定";
    }

    // java对象 转 Json对象 的方法
    // 方式一 日期格式化 不是异步请求
    /*public String toJson() {
        return JSON.toJSONStringWithDateFormat(this,"yyyy-MM-dd");
    }*/

    // 方式二 日期格式化 不是异步请求 建议用map形式,需要什么属性传什么属性
    public String toJson() {
        Map<String, Object> map = new HashMap<>();
        map.put("id", id);
        map.put("openDate", new SimpleDateFormat("yyyy-MM-dd").format(openDate));
        return JSON.toJSONString(map);
    }

}